home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- # extract file name and arguments from command line. File name
- # is supposed to be the last one, if it doesn't exist, then it
- # is assumed to be another argument.
- FILE=
- ARGS=
- GRAYSCALE=
- for arg in "$@"; do
- if [ "$arg" = "-gray" ]; then
- GRAYSCALE=1
- else
- ARGS="$ARGS $FILE"
- FILE=$arg;
- fi
- done
-
- # we're reading from STDIN, store it into a temporary file
- temp=0
- if test -z "$FILE" -o ! -f "$FILE" ; then
- ARGS="$ARGS $FILE"
- FILE=`mktemp /tmp/imagetops.XXXXXX` || exit 1
- cat > "$FILE"
- temp=1
- fi
-
- # check the file mime type, and set the command correspondingly
- cmd=
- magic=`file -bi "$FILE"`
- magicbase=`echo $magic | cut -f 1 -d "/"`
- magictype=`echo $magic | cut -f 2- -d "/"`
- if test "$magicbase" != "image" ; then
- echo "Not an image"
- exit 1;
- fi
- case $magictype in
- jpeg)
- cmd="jpegtopnm"
- ;;
- png|x-png)
- cmd="pngtopnm"
- ;;
- bmp|x-bmp)
- cmd="bmptoppm"
- ;;
- gif)
- cmd="giftopnm"
- ;;
- tiff)
- cmd="tifftopnm"
- ;;
- *)
- echo "Unsupported image type: $magic"
- exit 1
- ;;
-
- esac
-
- # executing command
- if [ "$GRAYSCALE" = "1" ]; then
- exec $cmd "$FILE" | ppmtopgm | pnmtops $ARGS
- else
- exec $cmd "$FILE" | pnmtops $ARGS
- fi
-
- # removing temporary file
- if test "$temp" = "1"; then
- rm -f "$FILE"
- fi
-